#include<stdio.h>
#include<string.h>

  int map[1010][1010];
  int prev[1010];
  int search[1010];
  int n,m;

int dfs(int data)
{
  int i,j;
    int temp;
    for(j=0;j<n;j++)
    {
        if(map[data][j]!=0 && search[j]!=1)
        {
            search[j]=1;
            temp=prev[j];
            prev[j]=data;
            if(temp==-1 || dfs(temp))
                return 1;
            prev[j]=temp;
        }
    }
    return 0;
}


void out()
{
  int i,j;
  int num=0,temp;
  for(i=0;i<n;i++)
  {
      memset(search,0,sizeof(search));
      temp=dfs(i);
  }
  for(i=0;i<n;i++)
  {
      if(prev[i]!=-1)num++;
  }
  printf("%d\n",n-num/2);
}

int main()
{
  int i,j;
    int mm,k;
    while(scanf("%d",&n)!=EOF)
    {
        memset(map,0,sizeof(map));
        memset(prev,-1,sizeof(prev));
        for(i=0;i<n;i++)
        {
        scanf("%d: (%d)",&mm,&m);
          for(j=0;j<m;j++)
          {
            scanf("%d",&k);
            map[mm][k]=1;
            map[k][mm]=1;
          }
        }    
        out();
    }
    return 0;
}
